Skip to main content

芯片与电路

芯片和电路长啥样呢?

up的视频讲解:

1 芯片

1.1 芯片型号

STM32F103C8T6 是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器, 它的命名规则如下:

芯片型号

  • ST:指意法半导体

  • M:指定微处理器

  • 32:表示计算机处理器位数

  • F103:是ST公司产品系列

alt text

ARM Cortex内核
  • ARM 公司在用Cortex命名,MCU内核并分成A、R和M三类

  • M系列有M0、M0+、M3、M4、M7

  • Cortex-M3是ARM公司推出MCU内核,ST公司在此内核的基础上完成了USART、DMA等外围电路的设计。

1.2 芯片架构

STM32F103C8T6整个系统结构可以分为由ARM公司设计的Cortex-M3内核和ST公司在此基础上优化的总线矩阵、DMA、AHB、APB1以及APB2上挂载的外设等两个部分,结构如下

芯片架构

  • Cortex-M3采用了将指令存储和数据存储分开的 的哈佛结构,这样一来Cortex-M3同时拥有了独立的32-bit指令总线和32-bit数据总线,数据访问将不再占用指令总线,同时读取指令和数据后提升了MCU运行速度。

  • 各个外设

    • Flash 64K
    • SRAM 20K
    • GPIO
    • ADC
    • Timer
    • IIC,SPI,USART,CAN

这些外设我们会在接下来的课程中逐一学习,并应用到我们的实验中

哈佛架构和冯诺依曼架构对比
  • 冯・诺依曼架构: 指令、数据共用同一条总线、同一块存储空间

  • 冯・诺依曼架构优势:结构简单、内存空间灵活, 主要应用于通用计算机(PC)

  • 哈佛架构: 指令、数据完全分离:两套独立存储器 + 两套独立总线

-哈佛架构优势:执行效率高、实时性强, 主要应用于微控制器(MCU)

我们通过观察芯片架构图, 可以知道STM32采用的是哈佛架构

哈佛架构

  • ICode 总线 专门取Flash(主程序存储区)指令
  • DCode 总线 访问 SRAM / 外设 / Flash 数据
  • System 总线 内核访问外设 / 系统寄存器

1.3 芯片总线

除了上述Cortex-M3 内核内部的三条 “专用总线”, 其他的总线也需要我们了解下:

芯片总线

  1. DMA总线: 实现 “内存→外设”“外设→内存”“内存→内存” 的高速数据搬运,无需 CPU内核参与, 可以并行完成任务

  2. Bus Matrix(总线矩阵): 连接所有总线, 是所有总线的 “交通枢纽”, 定义好了地址与各外设的映射关系, CPU可直接通过地址去与外设交互

  3. AHB 系统总线: 连接所有高速设备 + 桥接低速总线, 是整个APB1/APB2外设系统的 “根总线”

    • RCC(复位与时钟控制)整个时钟树的源头,必须挂高速总线

    • DMA1 / DMA2直接连 AHB,才能高速搬运数据

  4. APB1/APB2 外设总线:通过Bridge1/Bridge2桥接器, 把高速 AHB 总线转换为低速 APB 总线,挂载中低速外设。

    • APB1(最高36MHz) USART2/3、SPI2/3、I2C1/2、TIM2~7、USB、CAN 等中低速外设

    • APB2(最高72MHz) GPIO、USART1、SPI1、ADC1/2、TIM1/8 等高速外设

1.4 芯片外设

芯片外设

APB1 总线外设(中低速,最高 36MHz)

  • DAC 数模转换器,把数字信号转换成模拟电压输出

  • I2C1/I2C2 两线制串行总线,用于连接 EEPROM、传感器等外设

  • UART4/UART5 异步串口通信

  • USART2/USART3 同步 / 异步串口通信

  • SPI2/I2S、SPI3/I2S 同步串行接口(SPI)+ 音频接口(I2S)

  • WWDG/IWDG 窗口看门狗 / 独立看门狗,防止程序跑飞死机

  • RTC 实时时钟,在掉电后也能计时,提供日历、闹钟功能

  • TIM2~TIM7 通用定时器,用于定时、计数、PWM 输出、输入捕获

APB2 总线外设(高速,最高 72MHz)

  • ADC1/2/3 模数转换器,把模拟电压转换成数字信号,用于采集传感器数据

  • USART1 同步 / 异步串口通信

  • SPI1 高速同步串行接口,可驱动 Flash、OLED 屏等外设

  • TIM1/TIM8 高级控制定时器,支持 PWM 输出、电机控制、死区生成等

  • GPIOA/B/C/D/E/F/G 通用输入输出口,芯片所有引脚的控制单元

  • AFIO 复用功能 IO 控制器,用于配置引脚的外设复用映射、外部中断引脚选择

  • EXTI 外部中断控制器,可把 GPIO 引脚配置成外部中断触发源

2 最小系统开发板

最小系统板就是一个最精简的电路,精简到只能维持MCU的最基本的正常工作。

  • 最小系统开发板原理图:

最小系统开发板原理图

  • 最小系统开发板PCB:

最小系统开发板PCB

最小系统电路构成
  • 供电电路
  • 复位电路
  • 晶振电路
  • 下载电路

3 芯片启动方式 与 下载方式

3.1 芯片启动方式

芯片启动方式:STM32官方提供了3种程序加载方式

芯片启动方式

  • 1 Flash 启动 (日常开发)

  • 2 系统存储器启动 进入芯片内置的 ST Bootloader(串口下载模式)

  • 3 内置 SRAM 启动 调试时直接从 RAM 运行代码(极少用)

3.2 常用芯片下载方式

  • SWD(Serial Wire Debug)下载 + 调试

    • 工具:ST-Link

    • 硬件连接:仅需 2 根线(SWDIO + SWCLK)+ 电源(3.3V)+ GND,无需占用额外引脚。

    • 烧录软件:IDE 直烧(Keil MDK、STM32CubeIDE)

  • UART 串口下载(ISP 模式)仅下载

    • 工具:无需仿真器,仅需 USB-TTL(CH340) 模块

    • 硬件连接:UART1 的 TX/RX 引脚 + 电源 + GND,配合 BOOT0 引脚拉高进入 ISP 模式

    • 烧录软甲:STM32CubeProgrammer(Windows/Linux 通用)

本教程默认方式
  • 本教程采用STLINK工具, 将代码通过IDE工具直接烧录进芯片的Flash里面

  • 所以硬件上直接将BOOT0下拉到地, 默认从Flash启动程序